<?php
// Подключаем модуль базы пользователей
mst_initmod('musers',20071009);

/**
 * Авторизация с помощью php-конфига
 * @author
 */
class mauth_checkuser_musers extends mauth_checkuser
{
    function __construct($cfg)
    {
        parent::__construct($cfg);

    }
    function method()
    {
        return 'musers';
    }
    function auth($wholelogin,$password)
    {
        // Получаем настройки метода
        // Заданные в mauth/cfg/config.php
        $cfg = $this->getcfg();
        if ($cfg['md5password']===true)
        {
            // В настройках этого метода включено md5-шифрование паролей
            $password = md5($password);
        }
        $userinfo = $this->getuserinfo($wholelogin);
        if ($userinfo !== false
        AND $userinfo['password']==$password)
        {
            if ($cfg['id']===true)
            {
                // В настройках этого метода разрешены id пользователей
                $this->setthisuserid($userinfo['id']);
            }
            return true;
        }
        // Авторизация не успешна
        return false;
    }

    function getuserinfo($wholelogin)
    {
        $cfg = $this->getcfg();
        if($user = musers_get_userbylogin_active($wholelogin))
        {
            return array(
						'wlogin'=>$user->get('plain','login'),
						'password'=>$user->get('plain','password'),
						'id'=>$user->getId()
                        );
        }else
        {
            return false;
        }
    }
    function getuserid($wholelogin)
    {
        if($userinfo = $this->getuserinfo($wholelogin))
        {
            return $userinfo['id'];
        }else
        {
            return false;
        }
    }
    function getuserlogin($id)
    {
        $cfg = $this->getcfg();
        if($user = $this->dbprocessor->query('sc_get_users',$id))
        {
            $res = array(
						'wlogin'=>$user->get('plain','login'),
						'password'=>$user->get('plain','password'),
						'id'=>$user->getId()
                        );
        }else
        {
            return false;
        }
    }
    /**
     * Регистрация пользователя
     * Возвращает id зарегистрированного пользователя
     * или false
     * @param $wholelogin
     * @param $password
     * @return int
     */
    /*
    function reguser($wholelogin,$password=null)
    {
        $cfg = $this->getcfg();
        $user = $this->dbprocessor->query('sc_getObj_users');
        $user->set('plain',$wholelogin,'login');
        if (!is_null($password))
        {
            mst_modload('pear','Text/Password');
            $user->set('plain',Text_Password::create(8),'password');
        }
        $user_id = $this->dbprocessor->query('sc_insert_users',$user);
        return $user_id->get('plain');
    }
*/
    function isauch()
    {
        return true;
    }
    function isuserid()
    {
        return true;
    }
    /**
     * Возможна ли регистрация через этот метод авторизации
     */
    /*
    function isreg()
    {
        return true;
    }
*/
}

?>